package com.base.commons.annotation;

import com.base.commons.emums.OperateType;

import java.lang.annotation.*;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface BusinessLog {
    /**
     * 属性标题
     * @return
     */
    String title() default "";

    /**
     * 操作分组，默认所有分组，指定时只对应固定分组
     * ；例：groups={OperateType.ADD,OperateType.UPDATE}
     * @return
     */
    OperateType[] groups() default {};

    /**
     * 主键属性（一个类中只可以有一个主键属性字段）
     * @return
     */
    boolean primaryKey() default false;

    /**
     * 时间类型属性按指定格式进行格式化
     * 例：format = "yyyy-MM-dd HH:mm:ss"
     * @return
     */
    String format() default "";

    /**
     * 替换原有值为对应的描述
     * 例：replace = { "待审核_0", "审核通过_1","审核驳回_2" }
     * @return
     */
    String[] replace() default {};

    /**
     * 标注该属性的顺序
     * @return 该属性的顺序
     */
    String order() default "0";
}